package org.jeecgframework.web.system.pojo.base;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;
import org.jeecgframework.poi.excel.annotation.Excel;

/**   
 * @Title: Entity
 * @Description: 工程师
 * @author onlineGenerator
 * @date 2016-04-21 16:41:38
 * @version V1.0   
 *
 */
@Entity
@Table(name = "zy_engineer", schema = "")
@SuppressWarnings("serial")
public class ZyEngineerEntity implements java.io.Serializable {
	/**主键*/
	private java.lang.String id;
	/**tsBaseUser主键*/
	@Excel(name="tsBaseUser主键")
	private TSBaseUser tsBaseUser;
	/**工程师编号 */
	@Excel(name="engineerNo")
	private String engineerNo;
	/**姓名*/
	@Excel(name="姓名")
	private java.lang.String name;
	/**性别*/
	@Excel(name="性别")
	private Boolean gender;
	/**手机号*/
	@Excel(name="手机号")
	private java.lang.String cellphone;
	/**邮箱*/
	@Excel(name="邮箱")
	private java.lang.String email;
	/**所属机构*/
	@Excel(name="所属机构")
	private TSDepart belongOrg;
	/**状态*/
	@Excel(name="状态")
	private java.lang.String state;
	/**认证证书*/
	@Excel(name="认证证书")
	private java.lang.String authentication;
	@Excel(name="证书编号")
	private java.lang.String certificateNum;
	/**上级工程师或人员*/
	@Excel(name="上级工程师或人员")
	private ZyEngineerEntity parentId;
	/**身份证号*/
	@Excel(name="身份证号")
	private java.lang.String idNum;
	/**工程师类别*/
	/*@Excel(name="工程师类别")
	private java.lang.String type;*/
	/**是否删除*/
	@Excel(name="是否删除")
	private java.lang.String isDelete;
	/**是否是区域工程师*/
	private java.lang.Boolean isAreaEngineer;
	/**创建人名称*/
	private java.lang.String createName;
	/**创建人登录名称*/
	private java.lang.String createBy;
	/**创建日期*/
	private java.util.Date createDate;
	/**更新人名称*/
	private java.lang.String updateName;
	/**更新人登录名称*/
	private java.lang.String updateBy;
	/**更新日期*/
	private java.util.Date updateDate;
	
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  主键
	 */
	@Id
	@GeneratedValue(generator = "paymentableGenerator")
	@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
	@Column(name ="ID",nullable=false,length=36)
	public java.lang.String getId(){
		return this.id;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  主键
	 */
	public void setId(java.lang.String id){
		this.id = id;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  tsBaseUser主键
	 */
	@ManyToOne(cascade=CascadeType.DETACH,fetch=FetchType.EAGER)
    @JoinColumn(name="TS_BASE_USER_ID")
	public TSBaseUser getTsBaseUser(){
		return this.tsBaseUser;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  tsBaseUser主键
	 */
	public void setTsBaseUser(TSBaseUser tsBaseUser){
		this.tsBaseUser = tsBaseUser;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  姓名
	 */
	@Column(name ="NAME",nullable=true,length=20)
	public java.lang.String getName(){
		return this.name;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  姓名
	 */
	public void setName(java.lang.String name){
		this.name = name;
	}
	
	
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  工程师编号
	 */
	@Column(name ="ENGINEER_NO",nullable=true,length=20)
	public String getEngineerNo() {
		return engineerNo;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  工程师编号
	 */
	public void setEngineerNo(String engineerNo) {
		this.engineerNo = engineerNo;
	}

	/**
	 *方法: 取得Boolean
	 *@return: Boolean  性别
	 */
	@Column(name ="GENDER",nullable=true,length=1)
	public Boolean getGender(){
		return this.gender;
	}

	/**
	 *方法: 设置Boolean
	 *@param: Boolean  性别
	 */
	public void setGender(Boolean gender){
		this.gender = gender;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  手机号
	 */
	@Column(name ="CELLPHONE",nullable=true,length=20)
	public java.lang.String getCellphone(){
		return this.cellphone;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  手机号
	 */
	public void setCellphone(java.lang.String cellphone){
		this.cellphone = cellphone;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  邮箱
	 */
	@Column(name ="EMAIL",nullable=true,length=50)
	public java.lang.String getEmail(){
		return this.email;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  邮箱
	 */
	public void setEmail(java.lang.String email){
		this.email = email;
	}
	/**
	 *方法: 取得ZyOrgEntity
	 *@return: ZyOrgEntity  所属机构
	 */
	@ManyToOne(cascade=CascadeType.DETACH,fetch=FetchType.EAGER)
    @JoinColumn(name="BELONG_ORG")
	public TSDepart getBelongOrg(){
		return this.belongOrg;
	}

	/**
	 *方法: 设置ZyOrgEntity
	 *@param: ZyOrgEntity  所属机构
	 */
	public void setBelongOrg(TSDepart belongOrg){
		this.belongOrg = belongOrg;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  状态
	 */
	@Column(name ="STATE",nullable=true,length=20)
	public java.lang.String getState(){
		return this.state;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  状态
	 */
	public void setState(java.lang.String state){
		this.state = state;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  认证证书
	 */
	@Column(name ="AUTHENTICATION",nullable=true,length=100)
	public java.lang.String getAuthentication(){
		return this.authentication;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  认证证书
	 */
	public void setAuthentication(java.lang.String authentication){
		this.authentication = authentication;
	}
	
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  证书编号
	 */
	@Column(name ="CERTIFICATE_NUM",nullable=true,length=50)
	public java.lang.String getCertificateNum() {
		return certificateNum;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  证书编号
	 */
	public void setCertificateNum(java.lang.String certificateNum) {
		this.certificateNum = certificateNum;
	}

	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  上级工程师或人员
	 */
	@ManyToOne(cascade=CascadeType.DETACH,fetch=FetchType.EAGER)
    @JoinColumn(name="PARENT_ID")
//	@Column(name ="PARENT_ID",nullable=true,length=36)
	public ZyEngineerEntity getParentId(){
		return this.parentId;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  上级工程师或人员
	 */
	public void setParentId(ZyEngineerEntity parentId){
		this.parentId = parentId;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  身份证号
	 */
	@Column(name ="ID_NUM",nullable=true,length=50)
	public java.lang.String getIdNum(){
		return this.idNum;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  身份证号
	 */
	public void setIdNum(java.lang.String idNum){
		this.idNum = idNum;
	}
	
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  工程师类别
	 */
	/*
	@Column(name ="TYPE",nullable=true,length=50)
	public java.lang.String getType() {
		return type;
	}

	*//**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  工程师类别
	 */
	/*
	public void setType(java.lang.String type) {
		this.type = type;
	}*/

	/**
	 *方法: 取得String
	 *@return: String  是否删除
	 */
	@Column(name ="IS_DELETE",nullable=true,length=50)
	public java.lang.String getIsDelete() {
		return isDelete;
	}

	/**
	 *方法: 设置String
	 *@param: String  是否删除
	 */
	public void setIsDelete(java.lang.String isDelete) {
		this.isDelete = isDelete;
	}
	
	@Column(name ="is_area_engineer",nullable=true,length=1)
	public java.lang.Boolean getIsAreaEngineer() {
		return isAreaEngineer;
	}

	public void setIsAreaEngineer(java.lang.Boolean isAreaEngineer) {
		this.isAreaEngineer = isAreaEngineer;
	}

	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  创建人名称
	 */
	@Column(name ="CREATE_NAME",nullable=true,length=50)
	public java.lang.String getCreateName(){
		return this.createName;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  创建人名称
	 */
	public void setCreateName(java.lang.String createName){
		this.createName = createName;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  创建人登录名称
	 */
	@Column(name ="CREATE_BY",nullable=true,length=50)
	public java.lang.String getCreateBy(){
		return this.createBy;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  创建人登录名称
	 */
	public void setCreateBy(java.lang.String createBy){
		this.createBy = createBy;
	}
	/**
	 *方法: 取得java.util.Date
	 *@return: java.util.Date  创建日期
	 */
	@Column(name ="CREATE_DATE",nullable=true,length=20)
	public java.util.Date getCreateDate(){
		return this.createDate;
	}

	/**
	 *方法: 设置java.util.Date
	 *@param: java.util.Date  创建日期
	 */
	public void setCreateDate(java.util.Date createDate){
		this.createDate = createDate;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  更新人名称
	 */
	@Column(name ="UPDATE_NAME",nullable=true,length=50)
	public java.lang.String getUpdateName(){
		return this.updateName;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  更新人名称
	 */
	public void setUpdateName(java.lang.String updateName){
		this.updateName = updateName;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  更新人登录名称
	 */
	@Column(name ="UPDATE_BY",nullable=true,length=50)
	public java.lang.String getUpdateBy(){
		return this.updateBy;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  更新人登录名称
	 */
	public void setUpdateBy(java.lang.String updateBy){
		this.updateBy = updateBy;
	}
	/**
	 *方法: 取得java.util.Date
	 *@return: java.util.Date  更新日期
	 */
	@Column(name ="UPDATE_DATE",nullable=true,length=20)
	public java.util.Date getUpdateDate(){
		return this.updateDate;
	}

	/**
	 *方法: 设置java.util.Date
	 *@param: java.util.Date  更新日期
	 */
	public void setUpdateDate(java.util.Date updateDate){
		this.updateDate = updateDate;
	}
}
